При первом запуске приложения для каждого пользователя общие диалоги данного приложения Открыть Файл и Сохранить должны по умолчанию использовать папку Мои документы или вложенную в нее папку, если эти диалоги вызываются впервые. При последующих вызовах данных диалогов рекомендуется применять по умолчанию путь, который использовался ранее.
При вызове общих диалогов Открыть/Сохранить файл без параметров по умолчанию должна открываться папка Мои документы. Можно непосредственно назначить папку Мои документы целью, передав CSIDL_PERSONAL в функцию SHGetFolderPath().
Замечание:
Папка Мои документы предназначена для хранения данных, созданных пользователем, а не как временное хранилище или папка данных о состоянии приложения. Данные, не являющиеся пользовательскими, должны сохраняться с использованием соответствующего пути AppData, как описано в следующем требовании.
Для приложений, работающих с изображениями, рекомендуется вместо папки Мои документы использовать папку Мои рисунки, которая вложена в Мои документы.
При использовании для хранения данных папки по умолчанию Мои документы появляются следующие преимущества:
У пользователей имеется только один каталог для упорядочения и хранения всех своих данных.
Упрощено совместное использование данных между приложениями, так как все приложения легко могут получить доступ к папке Мои документы с помощью общего диалога Открыть Файл.
Папка Мои документы является абстрактным местоположением, и администратор может незаметно для пользователей перенести ее в другое место в сети.
Папку Мои документы можно открыть с Рабочего стола.
Папка Мои документы является частью информации профиля пользователя, поэтому по умолчанию другие пользователи не могут читать ее содержимое.
Определение пути к папке Мои документы: Предпочтительным способом определения пути к папке является передача CSIDL_PERSONAL в API SHGetFolderPath.
TCHAR szMyDocs[MAX_PATH]; ... hr = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, 0, szMyDocs)
SHGetFolderPath совместима с Windows 95, Windows 98, Windows NT 4 и Windows 2000 и экспортируется из SHFOLDER.DLL. SHFOLDER.DLL – это новая библиотека DLL, которая поставляется с Windows 2000, а также с Windows NT 4 с пакетом обновления 4, Internet Explorer 5 и Windows 98 Second Edition. SHFOLDER.DLL – это распространяемый компонент, включающий поддержку для CSIDL_PERSONAL, а также для многих других специальных папок. Поставщикам программного обеспечения рекомендуется содействовать широкому распространению этого компонента, чтобы включить эту поддержку в операционные системы Windows, предшествующие версии Windows 2000. Windows 2000 включает эту DLL как защищенный системный файл, и, таким образом, данная DLL не может быть заменена в системе Windows версии 2000 или старше.